package com.zhixiang.core.service;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

import com.zhixiang.core.command.QueryFilter;
import com.zhixiang.core.entity.TreeObj;
import com.zhixiang.core.web.paging.PagingBean;

public interface BaseService<T, PK extends Serializable>
{
    public T save(T paramObject);

    public T merge(T paramObject);

    public void evict(T paramObject);

    public T get(PK pk);

    public List<T> getAll();

    public List<T> getAll(PagingBean paramPagingBean);

    public List<T> getAll(QueryFilter paramQueryFilter);

    public void remove(PK[] pks);
    
    public void remove(T paramObject);

    public void flush();
    
    public T uniqueResult(final String queryString, final Object values[]);
    
    public Long update(String paramString, Object[] paramArrayOfObject);
    
    public List<TreeObj> getTreeObj(PK id , String displayName,Map<String,String> map);
}
